home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / globaltrash.lha / Plasma.s < prev   
Encoding:
Text File  |  1993-03-16  |  14.2 KB  |  802 lines

  1.         Section    Program,code_c
  2.  
  3. ;--------------    Macros -----------------------------------
  4.  
  5. BltWait:    Macro                Wait for blitter
  6. Bltbusy\@:    Btst    #6,2(a6)
  7.         Bne.s    Bltbusy\@
  8.         Endm
  9.  
  10. Sync:        Macro                Syncronizise
  11. Rastwait\@    Move.l    4(a6),d0
  12.         And.l    #$1ff00,d0
  13.         Lsr.l    #8,d0
  14.         Cmp    #\1,d0
  15.         Bne.s    Rastwait\@
  16.         Endm
  17.  
  18. ;--------------    Code -------------------------------------
  19.  
  20. Begin        Bsr    Init            Initiation
  21.         Lea    $Dff000,a6        Custom register    
  22. Disable        Cmp.b    #10,6(a6)        Wait for raster 10
  23.         Bne.s    Disable
  24.         Lea    Old_bits(pc),a0
  25.         Move    $02(a6),(a0)        Save old DMA
  26.         Move    $1C(a6),2(a0)        Save old irq
  27.         Or.l    #$c000c000,(a0)+
  28.         Move    #$7fff,$96(a6)        Turn off DMA
  29.         Move    #$7fff,$9a(a6)        Turn off irq
  30.         Move    #$7fff,$9c(a6)    
  31.         Move.l    $6c.w,(a0)+
  32.         Move.l    #Level3,$6c.w
  33.         Move.l    #Copperlist,$80(a6)    Our Copperlist
  34.         Move    #0,$88(a6)
  35.         Move    #$83c0,$96(a6)        Turn on cop,bitplane,blt
  36.         Move    #$c020,$9A(a6)        Allow interrupt
  37.  
  38.  
  39.         Lea    Pattern1(pc),a6
  40.         Bsr    Main
  41.         Lea    Pattern2(pc),a6
  42.         Bsr    Main
  43.         Lea    Pattern3(pc),a6
  44.         Bsr    Main
  45.         Lea    Pattern4(pc),a6
  46.         Bsr    Main
  47.         Lea    Pattern5(pc),a6
  48.         Bsr    Main
  49.         Lea    Pattern6(pc),a6
  50.         Bsr    Main
  51.         Lea    Pattern7(pc),a6
  52.         Bsr    Main
  53.         Lea    Pattern8(pc),a6
  54.         Bsr    Main
  55.  
  56.  
  57.  
  58. Wait        Btst    #6,$Bfe001
  59.         Bne    Wait
  60.  
  61. Exit        Lea    $Dff000,a6
  62.         Lea    Old_bits(pc),a0
  63.         Move    #$7fff,$96(a6)        Turn off DMA
  64.         Move    #$7fff,$9a(a6)        Turn off irq
  65.         Move    (a0)+,$96(a6)        Reinstall DMA
  66.         Move    (a0)+,$9a(a6)        Reinstall irq
  67.         Move.l    (a0)+,$6c.w        and vector
  68.         Move.l    #$420,$80(a6)        Old copper
  69.         Moveq    #0,d0
  70.         Rts
  71. Old_bits    Ds.l    2
  72.  
  73.  
  74. ;--------------    Code -------------------------------------
  75.  
  76. Level3        Movem.l    a0-a6/d0-d7,-(sp)
  77.         Bsr    Vbl
  78.         Movem.l    (sp)+,a0-a6/d0-d7
  79. Out        Move    #$7fff,$Dff09c
  80.         Rte
  81.  
  82. Init        Bsr    Initiation
  83.  
  84. Initiation    Lea    Screen,a0        Clear memory
  85.         Move    #$3fff,d7
  86. Clear        Clr.l    (a0)+
  87.         Dbf    d7,Clear
  88.         Lea    Copper(pc),a0
  89.         Lea    Copperlist,a1        Copper
  90. Find_end    Move.l    (a0)+,d0
  91.         Move.l    d0,(a1)+
  92.         Cmpi.l    #0,d0
  93.         Bne.s    Find_end
  94.         Subq    #4,a1
  95.         Lea    6(a1),a0        Start of color setting
  96.         Move.l    a0,Copcol
  97.         Move    #290-1,d7        No of Copper rasters
  98.         Move.l    #$17b1fffe,d0        WAIT
  99. Fill_copper    Move.l    d0,(a1)+
  100.         Addi.l    #$01000000,d0
  101.         Move.l    #$1820000,(a1)+        MOVE    
  102.         Move.l    #$1840000,(a1)+
  103.         Move.l    #$1860000,(a1)+
  104.         Move.l    #$1880000,(a1)+
  105.         Move.l    #$18a0000,(a1)+
  106.         Move.l    #$18c0000,(a1)+
  107.         Move.l    #$18e0000,(a1)+
  108.         Move.l    #$1900000,(a1)+
  109.         Move.l    #$1920000,(a1)+
  110.         Move.l    #$1940000,(a1)+
  111.         Move.l    #$1960000,(a1)+
  112.         Move.l    #$1980000,(a1)+
  113.         Move.l    #$19a0000,(a1)+
  114.         Move.l    #$19c0000,(a1)+
  115.         Move.l    #$19e0000,(a1)+
  116.         Dbf    d7,Fill_copper
  117.         Move.l    #$fffffffe,(a1)+
  118.         Rts
  119. Bit_pointer    Dc.w    0
  120.  
  121.  
  122. ;-------------- Draw screen  a6=pattern ------------------------
  123.  
  124. Main        Lea    Bitplane0,a0        Screen planes
  125.         Lea    Bitplane1,a1
  126.         Lea    Bitplane2,a2
  127.         Lea    Bitplane3,a3
  128.         Move.l    (a6)+,a4        Bitmaps
  129.         Lea    Cosinus(pc),a5        Cosinus
  130.         Move    (a6)+,d1        Start values
  131.         Move    (a6)+,d2
  132.         Move    (a6)+,d3
  133.         Move    (a6)+,d4
  134.  
  135.         Move    #290-1,d6        No of scanlines
  136.         Move.b    #7,d0            Bit
  137. Next_scan    Move    #Bits-1,d7        No of bits in one scan
  138. Next_bit    Move.b    d0,Bit_pointer        
  139.         Move    0(a5,d1),d5
  140.         Addi    #$4000,d5
  141.         Lsr    #7,d5            d5 = Cos(d1)
  142.         Move    0(a5,d2),d0
  143.         Addi    #$4000,d0
  144.         Lsr    #7,d0
  145.         Add    d0,d5            + Cos(d2)
  146.         Move    0(a5,d3),d0
  147.         Addi    #$4000,d0
  148.         Lsr    #7,d0
  149.         Add    d0,d5            + Cos(d3)
  150.         Move    0(a5,d4),d0
  151.         Addi    #$4000,d0
  152.         Lsr    #7,d0
  153.         Add    d0,d5            +Cos(d4)
  154.         Lsr    #1,d5
  155.         Lsl    #1,d5
  156.  
  157. Plot_bit    Move    0(a4,d5),d5        d5 = bitmap
  158.         Move.b    Bit_pointer(pc),d0
  159.         Bclr    d0,(a3)            Set or clear bits in all
  160.         Btst    #3,d5            planes
  161.         Beq.s    Plane2
  162.         Bset    d0,(a3)
  163. Plane2        Bclr    d0,(a2)
  164.         Btst    #2,d5
  165.         Beq.s    Plane1
  166.         Bset    d0,(a2)
  167. Plane1        Bclr    d0,(a1)
  168.         Btst    #1,d5
  169.         Beq.s    Plane0
  170.         Bset    d0,(a1)
  171. Plane0        Bclr    d0,(a0)
  172.         Btst    #0,d5
  173.         Beq.s    Ready
  174.         Bset    d0,(a0)
  175. Ready        Subi.b    #1,d0
  176.         Bpl.s    No_underflow
  177.         Addi.b    #8,d0            Perform calculations
  178.         Addq    #1,a0            on bit #7
  179.         Addq    #1,a1            in next byte
  180.         Addq    #1,a2
  181.         Addq    #1,a3
  182.  
  183. No_underflow    Add    (a6),d1
  184.         Add    2(a6),d2
  185.         Add    4(a6),d3
  186.         Add    6(a6),d4
  187.         Andi    #$1ffe,d1
  188.         Andi    #$1ffe,d2
  189.         Andi    #$1ffe,d3
  190.         Andi    #$1ffe,d4
  191.         Dbf    d7,Next_bit
  192.  
  193.         Sub    8(a6),d1
  194.         Sub    10(a6),d2
  195.         Sub    12(a6),d3
  196.         Sub    14(a6),d4
  197.         Andi    #$1ffe,d1
  198.         Andi    #$1ffe,d2
  199.         Andi    #$1ffe,d3
  200.         Andi    #$1ffe,d4
  201.         Dbf    d6,Next_scan
  202.         Lea    $Dff000,a6
  203.         Rts
  204.  
  205.  
  206. Vbl        Lea    $Dff000,a6
  207.         Move    #$8400,$96(a6)
  208.         Movea.l    Copcol(pc),a0        Copper
  209.         Lea    Cosinus(pc),a1
  210.         Move.l    #Area,d3
  211.         Move    #$1ffe,d0
  212.         Move    #$4000,d1
  213.         Move    #15-1,d7        16 colors
  214.  
  215.         Movem    Rgb(pc),d4-d6
  216. Angles        Addi    #20,d4
  217.         Addi    #26,d5
  218.         Addi    #-30,d6
  219.         And    d0,d4
  220.         And    d0,d5
  221.         And    d0,d6
  222.         Movem    d4-d6,Rgb
  223.  
  224. Next_colreg    Addi    #36,d4
  225.         Addi    #-30,d5
  226.         Addi    #24,d6
  227.         And    d0,d4            0-8192
  228.         And    d0,d5
  229.         And    d0,d6
  230.         Movea.l    d3,a2
  231.         Movea.l    d3,a3
  232.         Movea.l    d3,a4
  233.  
  234.         Move    0(a1,d4),d2
  235.         Add    d1,d2
  236.         Lsr    #7,d2
  237.         Lsl    #1,d2            d2 = 0-512
  238.         Adda    d2,a2
  239.  
  240.         Move    0(a1,d5),d2
  241.         Add    d1,d2
  242.         Lsr    #7,d2
  243.         Lsl    #1,d2
  244.         Adda    d2,a3
  245.  
  246.         Move    0(a1,d6),d2
  247.         Add    d1,d2
  248.         Lsr    #7,d2
  249.         Lsl    #1,d2
  250.         Adda    d2,a4
  251.  
  252.         BltWait
  253.         Move.l    #$8ffe4000,$40(a6)    D=(A+8)+(B+4)+C
  254.         Move.l    #-1,$44(a6)
  255.         Move.l    a3,$48(a6)        C => red
  256.         Move.l    a4,$4c(a6)        B => green
  257.         Move.l    a2,$50(a6)        A => blue
  258.         Move.l    a0,$54(a6)        D => copper
  259.         Clr.l    $60(a6)            Mod A,B,C = 0
  260.         Move.l    #62,$64(a6)        Mod D = 62
  261.         Move    #290*64+1,$58(a6)
  262.         Addq    #4,a0
  263.         Dbf    d7,Next_colreg
  264.         Rts
  265.  
  266. Copper        Dc.w    $8e,$1771
  267.         Dc.w    $90,$39d1
  268.         Dc.w    $92,$30            46 bytes/raster
  269.         Dc.w    $94,$d8
  270.         Dc.w    $e0,7
  271.         Dc.w    $e2,0
  272.         Dc.w    $e4,7
  273.         Dc.w    $e6,Bpsize
  274.         Dc.w    $e8,7
  275.         Dc.w    $ea,2*Bpsize
  276.         Dc.w    $ec,7
  277.         Dc.w    $ee,3*Bpsize
  278. Sprite        Dc.w    $120,0
  279.         Dc.w    $122,0
  280.         Dc.w    $124,0
  281.         Dc.w    $126,0
  282.         Dc.w    $128,0
  283.         Dc.w    $12a,0
  284.         Dc.w    $12c,0
  285.         Dc.w    $12e,0
  286.         Dc.w    $130,0
  287.         Dc.w    $132,0
  288.         Dc.w    $134,0
  289.         Dc.w    $136,0
  290.         Dc.w    $138,0
  291.         Dc.w    $13a,0
  292.         Dc.w    $13c,0
  293.         Dc.w    $13e,0
  294.  
  295.         Dc.w    $180,0
  296.         Dc.w    $100,$4200
  297. Copend        Dc.l    0
  298.  
  299.  
  300. Pattern1    Dc.l    Col1
  301.         Dc.w    7616,768,7040,960
  302.         Dc.w    8,12,-4,-16
  303.         Dc.w    8*Bits+12
  304.         Dc.w    12*Bits-16
  305.         Dc.w    -4*Bits+24
  306.         Dc.w    -16*Bits-20
  307.  
  308. Pattern2    Dc.l    Col1
  309.         Dc.w    200,468,2040,196
  310.         Dc.w    6,-30,2,16
  311.         Dc.w    6*Bits-12
  312.         Dc.w    -30*Bits+16
  313.         Dc.w    2*Bits-24
  314.         Dc.w    16*Bits+20
  315.  
  316. Pattern3    Dc.l    Col1
  317.         Dc.w    10,10,10,10
  318.         Dc.w    2,8,16,32
  319.         Dc.w    2*Bits-2
  320.         Dc.w    8*Bits-8
  321.         Dc.w    16*Bits-16
  322.         Dc.w    32*Bits-32
  323.  
  324. Pattern4    Dc.l    Col1
  325.         Dc.w    0,-20,40,-80
  326.         Dc.w    2,2,2,2
  327.         Dc.w    2*Bits-2
  328.         Dc.w    2*Bits-2
  329.         Dc.w    2*Bits-2
  330.         Dc.w    2*Bits-2
  331.  
  332. Pattern5    Dc.l    Col1
  333.         Dc.w    344,-100,346,2
  334.         Dc.w    18,-2,58,8
  335.         Dc.w    18*Bits-34
  336.         Dc.w    -2*Bits-4
  337.         Dc.w    58*Bits+24
  338.         Dc.w    8*Bits-20
  339.         DC.L    -1
  340.  
  341.  
  342. Pattern6    Dc.l    Col1
  343.         Dc.w    0,0,0,0
  344.         Dc.w    8,8,8,8
  345.         Dc.w    8*Bits-8
  346.         Dc.w    8*Bits+8
  347.         Dc.w    8*Bits+8
  348.         Dc.w    8*Bits-2
  349.  
  350.  
  351. Pattern7    Dc.l    Col1
  352.         Dc.w    344,-100,346,2
  353.         Dc.w    10,-2,28,4
  354.         Dc.w    10*Bits-18
  355.         Dc.w    -2*Bits-2
  356.         Dc.w    28*Bits+12
  357.         Dc.w    4*Bits-10
  358.  
  359. Pattern8    Dc.l    Col1
  360.         Dc.w    346,102,-368,104
  361.         Dc.w    4,6,-32,-78
  362.         Dc.w    4*Bits-24
  363.         Dc.w    6*Bits+14
  364.         Dc.w    -32*Bits-68
  365.         Dc.w    -78*Bits-10
  366.  
  367.  
  368.  
  369. Patt        Dc.l    Pattern8
  370.  
  371. Copperlist    Equ    $60000
  372. Copcol        Dc.l    0
  373.  
  374. Bits        Equ    352
  375. Scan        Equ    44
  376. Bpsize        Equ    290*scan
  377. Screen        Equ    $70000
  378. Bitplane0    Equ    Screen+Scan
  379. Bitplane1    Equ    Bitplane0+Bpsize
  380. Bitplane2    Equ    Bitplane1+Bpsize
  381. Bitplane3    Equ    Bitplane2+Bpsize
  382.  
  383. Rgb        Ds.w    3
  384.  
  385. Cosinus        Incbin    PA2:Plasma/Plasma.dat    
  386.  
  387.  
  388. Area
  389.     Dc.w    0,0,$100,$200
  390.     Dc.w    $300,$400,$500,$600
  391.     Dc.w    $700,$800,$900,$A00
  392.     Dc.w    $B00,$C00,$D00,$E00
  393.     Dc.w    $F00,$F00,$F00,$F00
  394.     Dc.w    $E00,$D00,$C00,$B00
  395.     Dc.w    $A00,$900,$800,$700
  396.     Dc.w    $600,$500,$400,$300
  397.     Dc.w    $200,$100,0,0
  398.     Dc.w    0,0,0,0
  399.     Dc.w    0,0,0,0
  400.     Dc.w    0,0,0,0
  401.     Dc.w    0,0,$100,$100
  402.     Dc.w    $200,$200,$300,$300
  403.     Dc.w    $400,$400,$500,$500
  404.     Dc.w    $600,$600,$700,$700
  405.     Dc.w    $800,$800,$900,$900
  406.     Dc.w    $A00,$A00,$B00,$B00
  407.     Dc.w    $C00,$C00,$C00,$C00
  408.     Dc.w    $B00,$B00,$A00,$A00
  409.     Dc.w    $900,$900,$900,$900
  410.     Dc.w    $A00,$A00,$B00,$B00
  411.     Dc.w    $C00,$C00,$D00,$D00
  412.     Dc.w    $E00,$E00,$F00,$F00
  413.     Dc.w    $F00,$F00,$E00,$E00
  414.     Dc.w    $D00,$D00,$C00,$C00
  415.     Dc.w    $B00,$B00,$A00,$A00
  416.     Dc.w    $900,$900,$900,$900
  417.     Dc.w    $A00,$A00,$B00,$B00
  418.     Dc.w    $C00,$C00,$C00,$C00
  419.     Dc.w    $B00,$B00,$A00,$A00
  420.     Dc.w    $900,$900,$800,$800
  421.     Dc.w    $700,$700,$600,$600
  422.     Dc.w    $500,$500,$400,$400
  423.     Dc.w    $300,$300,$200,$200
  424.     Dc.w    $100,$100,0,0
  425.     Dc.w    0,0,0,0
  426.     Dc.w    0,0,0,0
  427.     Dc.w    0,0,0,0
  428.     Dc.w    0,0,0
  429.     Dc.w    0,$100,$100,$200,$200
  430.     Dc.w    $300,$300,$400,$400
  431.     Dc.w    $500,$500,$600,$600
  432.     Dc.w    $700,$700,$800,$800
  433.     Dc.w    $900,$900,$A00,$A00
  434.     Dc.w    $B00,$B00,$C00,$C00
  435.     Dc.w    $C00,$C00,$B00,$B00
  436.     Dc.w    $A00,$A00,$900,$900
  437.     Dc.w    $900,$900,$A00,$A00
  438.     Dc.w    $B00,$B00,$C00,$C00
  439.     Dc.w    $D00,$D00,$E00,$E00
  440.     Dc.w    $F00,$F00,$F00,$F00
  441.     Dc.w    $E00,$E00,$D00,$D00
  442.     Dc.w    $C00,$C00,$B00,$B00
  443.     Dc.w    $A00,$A00,$900,$900
  444.     Dc.w    $900,$900,$A00,$A00
  445.     Dc.w    $B00,$B00,$C00,$C00
  446.     Dc.w    $C00,$C00,$B00,$B00
  447.     Dc.w    $A00,$A00,$900,$900
  448.     Dc.w    $800,$800,$700,$700
  449.     Dc.w    $600,$600,$500,$500
  450.     Dc.w    $400,$400,$300,$300
  451.     Dc.w    $200,$200,$100,$100
  452.     Dc.w    0,0,0,0
  453.     Dc.w    0,0,0,0
  454.     Dc.w    0,0,0,0
  455.     Dc.w    0,0,0,0
  456.     Dc.w    0,0,$100,$100
  457.     Dc.w    $200,$200,$300,$300
  458.     Dc.w    $400,$400,$500,$500
  459.     Dc.w    $600,$600,$700,$700
  460.     Dc.w    $800,$800,$900,$900
  461.     Dc.w    $A00,$A00,$B00,$B00
  462.     Dc.w    $C00,$C00,$C00,$C00
  463.     Dc.w    $B00,$B00,$A00,$A00
  464.     Dc.w    $900,$900,$900,$900
  465.     Dc.w    $A00,$A00,$B00,$B00
  466.     Dc.w    $C00,$C00,$D00,$D00
  467.     Dc.w    $E00,$E00,$F00,$F00
  468.     Dc.w    $F00,$F00,$E00,$E00
  469.     Dc.w    $D00,$D00,$C00,$C00
  470.     Dc.w    $B00,$B00,$A00,$A00
  471.     Dc.w    $900,$900,$900,$900
  472.     Dc.w    $A00,$A00,$B00,$B00
  473.     Dc.w    $C00,$C00,$C00,$C00
  474.     Dc.w    $B00,$B00,$A00,$A00
  475.     Dc.w    $900,$900,$800,$800
  476.     Dc.w    $700,$700,$600,$600
  477.     Dc.w    $500,$500,$400,$400
  478.     Dc.w    $300,$300,$200,$200
  479.     Dc.w    $100,$100,0,0
  480.     Dc.w    0,0,0,0
  481.     Dc.w    $100,$200,$300,$400
  482.     Dc.w    $500,$600,$700,$800
  483.     Dc.w    $900,$A00,$B00,$C00
  484.     Dc.w    $D00,$E00,$F00,$F00
  485.     Dc.w    $F00,$F00,$E00,$D00
  486.     Dc.w    $C00,$B00,$A00,$900
  487.     Dc.w    $800,$700,$600,$500
  488.     Dc.w    $400,$300,$200,$100
  489.     Dc.w    0,0,0,0
  490.     Dc.w    0,0,$100,$100
  491.     Dc.w    $200,$200,$300,$300
  492.     Dc.w    $400,$400,$500,$500
  493.     Dc.w    $600,$600,$700,$700
  494.     Dc.w    $800,$800,$900,$900
  495.     Dc.w    $A00,$A00,$B00,$B00
  496.     Dc.w    $C00,$C00,$C00,$C00
  497.     Dc.w    $B00,$B00,$A00,$A00
  498.     Dc.w    $900,$900,$900,$900
  499.     Dc.w    $A00,$A00,$B00,$B00
  500.     Dc.w    $C00,$C00,$D00,$D00
  501.     Dc.w    $E00,$E00,$F00,$F00
  502.     Dc.w    $F00,$F00,$E00,$E00
  503.     Dc.w    $D00,$D00,$C00,$C00
  504.     Dc.w    $B00,$B00,$A00,$A00
  505.     Dc.w    $900,$900,$900,$900
  506.     Dc.w    $A00,$A00,$B00,$B00
  507.     Dc.w    $C00,$C00,$C00,$C00
  508.     Dc.w    $B00,$B00,$A00,$A00
  509.     Dc.w    $900,$900,$800,$800
  510.     Dc.w    $700,$700,$600,$600
  511.     Dc.w    $500,$500,$400,$400
  512.     Dc.w    $300,$300,$200,$200
  513.     Dc.w    $100,$100,0,0,0,0
  514.     Dc.w    0,0,$100,$200
  515.     Dc.w    $300,$400,$500,$600
  516.     Dc.w    $700,$800,$900,$A00
  517.     Dc.w    $B00,$C00,$D00,$E00
  518.     Dc.w    $F00,$F00,$F00,$F00
  519.     Dc.w    $E00,$D00,$C00,$B00
  520.     Dc.w    $A00,$900,$800,$700
  521.     Dc.w    $600,$500,$400,$300
  522.     Dc.w    $200,$100,0,0
  523.     Dc.w    0,0,0,0
  524.     Dc.w    0,0,0,0,0
  525.  
  526.  
  527. Col1    Dc.w    1,1,1,1
  528.     Dc.w    1,2,2,3
  529.     Dc.w    4,5,6,7
  530.     Dc.w    8,9,$A,$B
  531.     Dc.w    $C,$D,$E,$E
  532.     Dc.w    $F,$F,$F,$F
  533.     Dc.w    $F,$F,$E,$E
  534.     Dc.w    $D,$C,$B,$A
  535.     Dc.w    9,8,7,6
  536.     Dc.w    5,4,3,2
  537.     Dc.w    2,1,1,1
  538.     Dc.w    1,1,1,2
  539.     Dc.w    2,3,4,5
  540.     Dc.w    6,7,8,9
  541.     Dc.w    $A,$B,$C,$D
  542.     Dc.w    $E,$E,$F,$F
  543.     Dc.w    $F,$F,$F,$F
  544.     Dc.w    $E,$E,$D,$C
  545.     Dc.w    $B,$A,9,8
  546.     Dc.w    7,6,5,4
  547.     Dc.w    3,2,2,1
  548.     Dc.w    1,1,1,1
  549.     Dc.w    1,2,2,3
  550.     Dc.w    4,5,6,7
  551.     Dc.w    8,9,$A,$B
  552.     Dc.w    $C,$D,$E,$E
  553.     Dc.w    $F,$F,$F,$F
  554.     Dc.w    $F,$F,$E,$E
  555.     Dc.w    $D,$C,$B,$A
  556.     Dc.w    9,8,7,6
  557.     Dc.w    5,4,3,2
  558.     Dc.w    2,1,1,1
  559.     Dc.w    1,1,1,2
  560.     Dc.w    2,3,4,5
  561.     Dc.w    6,7,8,9
  562.     Dc.w    $A,$B,$C,$D
  563.     Dc.w    $E,$E,$F,$F
  564.     Dc.w    $F,$F,$F,$F
  565.     Dc.w    $E,$E,$D,$C
  566.     Dc.w    $B,$A,9,8
  567. col2    Dc.w    7,6,5,4
  568.     Dc.w    3,2,2,1
  569.     Dc.w    1,1,1,1
  570.     Dc.w    1,2,2,3
  571.     Dc.w    4,5,6,7
  572.     Dc.w    8,9,$A,$B
  573.     Dc.w    $C,$D,$E,$E
  574.     Dc.w    $F,$F,$F,$F
  575.     Dc.w    $F,$F,$E,$E
  576.     Dc.w    $D,$C,$B,$A
  577.     Dc.w    9,8,7,6
  578.     Dc.w    5,4,3,2
  579.     Dc.w    2,1,1,1
  580.     Dc.w    1,1,1,2
  581.     Dc.w    2,3,4,5
  582.     Dc.w    6,7,8,9
  583.     Dc.w    $A,$B,$C,$D
  584.     Dc.w    $E,$E,$F,$F
  585.     Dc.w    $F,$F,$F,$F
  586.     Dc.w    $E,$E,$D,$C
  587.     Dc.w    $B,$A,9,8
  588.     Dc.w    7,6,5,4
  589.     Dc.w    3,2,2,1
  590.     Dc.w    1,1,1,1
  591.     Dc.w    1,2,2,3
  592.     Dc.w    4,5,6,7
  593.     Dc.w    8,9,$A,$B
  594.     Dc.w    $C,$D,$E,$E
  595.     Dc.w    $F,$F,$F,$F
  596.     Dc.w    $F,$F,$E,$E
  597.     Dc.w    $D,$C,$B,$A
  598.     Dc.w    9,8,7,6
  599.     Dc.w    5,4,3,2
  600.     Dc.w    2,1,1,1
  601.     Dc.w    1,1,1,2
  602.     Dc.w    2,3,4,5
  603.     Dc.w    6,7,8,9
  604.     Dc.w    $A,$B,$C,$D
  605.     Dc.w    $E,$E,$F,$F
  606.     Dc.w    $F,$F,$F,$F
  607.     Dc.w    $E,$E,$D,$C
  608.     Dc.w    $B,$A,9,8
  609.     Dc.w    7,6,5,4
  610.     Dc.w    3,2,2,1
  611.     Dc.w    1,1,1,1
  612.     Dc.w    1,2,2,3
  613.     Dc.w    4,5,6,7
  614.     Dc.w    8,9,$A,$B
  615.     Dc.w    $C,$D,$E,$E
  616.     Dc.w    $F,$F,$F,$F
  617.     Dc.w    $F,$F,$E,$E
  618.     Dc.w    $D,$C,$B,$A
  619.     Dc.w    9,8,7,6
  620.     Dc.w    5,4,3,2
  621.     Dc.w    2,1,1,1
  622.     Dc.w    1,1,1,2
  623.     Dc.w    2,3,4,5
  624.     Dc.w    6,7,8,9
  625.     Dc.w    $A,$B,$C,$D
  626.     Dc.w    $E,$E,$F,$F
  627.     Dc.w    $F,$F,$F,$F
  628.     Dc.w    $E,$E,$D,$C
  629.     Dc.w    $B,$A,9,8
  630.     Dc.w    7,6,5,4
  631.     Dc.w    3,2,2,1
  632.     Dc.w    1,1,1,1
  633.     Dc.w    1,2,2,3
  634.     Dc.w    4,5,6,7
  635.     Dc.w    8,9,$A,$B
  636.     Dc.w    $C,$D,$E,$E
  637.     Dc.w    $F,$F,$F,$F
  638.     Dc.w    $F,$F,$E,$E
  639.     Dc.w    $D,$C,$B,$A
  640.     Dc.w    9,8,7,6
  641.     Dc.w    5,4,3,2
  642.     Dc.w    2,1,1,1
  643.     Dc.w    1,1,1,2
  644.     Dc.w    2,3,4,5
  645.     Dc.w    6,7,8,9
  646.     Dc.w    $A,$B,$C,$D
  647.     Dc.w    $E,$E,$F,$F
  648.     Dc.w    $F,$F,$F,$F
  649.     Dc.w    $E,$E,$D,$C
  650.     Dc.w    $B,$A,9,8
  651.     Dc.w    7,6,5,4
  652.     Dc.w    3,2,2,1
  653.     Dc.w    1,1,1,1
  654.     Dc.w    1,2,2,3
  655.     Dc.w    4,5,6,7
  656.     Dc.w    8,9,$A,$B
  657.     Dc.w    $C,$D,$E,$E
  658.     Dc.w    $F,$F,$F,$F
  659.     Dc.w    $F,$F,$E,$E
  660.     Dc.w    $D,$C,$B,$A
  661.     Dc.w    9,8,7,6
  662.     Dc.w    5,4,3,2
  663.     Dc.w    2,1,1,1
  664.     Dc.w    2,2,2,1
  665.     Dc.w    1,1,1,1
  666.     Dc.w    1,1,1,1
  667.     Dc.w    1,2,2,2
  668.     Dc.w    2,2,2,2
  669.     Dc.w    3,3,3,3
  670.     Dc.w    4,4,4,4
  671.     Dc.w    5,5,5,5
  672.     Dc.w    6,6,6,6
  673.     Dc.w    7,7,7,7
  674.     Dc.w    8,8,8,8
  675.     Dc.w    9,9,9,9
  676.     Dc.w    $A,$A,$A,$A
  677.     Dc.w    $B,$B,$B,$B
  678.     Dc.w    $C,$C,$C,$C
  679.     Dc.w    $D,$D,$D,$D
  680.     Dc.w    $E,$E,$E,$E
  681.     Dc.w    $E,$E,$E,$F
  682.     Dc.w    $F,$F,$F,$F
  683.     Dc.w    $F,$F,$F,$F
  684.     Dc.w    $F,$F,$F,$E
  685.     Dc.w    $E,$E,$E,$E
  686.     Dc.w    $E,$E,$D,$D
  687.     Dc.w    $D,$D,$C,$C
  688.     Dc.w    $C,$C,$B,$B
  689.     Dc.w    $B,$B,$A,$A
  690.     Dc.w    $A,$A,9,9
  691.     Dc.w    9,9,8,8
  692.     Dc.w    8,8,7,7
  693.     Dc.w    7,7,6,6
  694.     Dc.w    6,6,5,5
  695.     Dc.w    5,5,4,4
  696.     Dc.w    4,4,3,3
  697.     Dc.w    3,3,2,2
  698.     Dc.w    2,2,2,2
  699.     Dc.w    2,1,1,1
  700.     Dc.w    1,1,1,1
  701.     Dc.w    1,1,1,2
  702.     Dc.w    2,2,2,2
  703.     Dc.w    2,2,3,3
  704.     Dc.w    3,3,4,4
  705.     Dc.w    4,4,5,5
  706.     Dc.w    5,5,6,6
  707.     Dc.w    6,6,7,7
  708.     Dc.w    7,7,8,8
  709.     Dc.w    8,8,9,9
  710.     Dc.w    9,9,$A,$A
  711.     Dc.w    $A,$A,$B,$B
  712.     Dc.w    $B,$B,$C,$C
  713.     Dc.w    $C,$C,$D,$D
  714.     Dc.w    $D,$D,$E,$E
  715.     Dc.w    $E,$E,$E,$E
  716.     Dc.w    $E,$F,$F,$F
  717.     Dc.w    $F,$F,$F,$F
  718.     Dc.w    $F,$F,$F,$F
  719.     Dc.w    $F,$E,$E,$E
  720.     Dc.w    $E,$E,$E,$E
  721.     Dc.w    $D,$D,$D,$D
  722.     Dc.w    $C,$C,$C,$C
  723.     Dc.w    $B,$B,$B,$B
  724.     Dc.w    $A,$A,$A,$A
  725.     Dc.w    9,9,9,9
  726.     Dc.w    8,8,8,8
  727.     Dc.w    7,7,7,7
  728.     Dc.w    6,6,6,6
  729.     Dc.w    5,5,5,5
  730.     Dc.w    4,4,4,4
  731.     Dc.w    3,3,3,3
  732.     Dc.w    2,2,2,2
  733.     Dc.w    2,2,2,1
  734.     Dc.w    1,1,1,1
  735.     Dc.w    1,1,1,1
  736.     Dc.w    1,2,2,2
  737.     Dc.w    2,2,2,2
  738.     Dc.w    3,3,3,3
  739.     Dc.w    4,4,4,4
  740.     Dc.w    5,5,5,5
  741.     Dc.w    6,6,6,6
  742.     Dc.w    7,7,7,7
  743.     Dc.w    8,8,8,8
  744.     Dc.w    9,9,9,9
  745.     Dc.w    $A,$A,$A,$A
  746.     Dc.w    $B,$B,$B,$B
  747.     Dc.w    $C,$C,$C,$C
  748.     Dc.w    $D,$D,$D,$D
  749.     Dc.w    $E,$E,$E,$E
  750.     Dc.w    $E,$E,$E,$F
  751.     Dc.w    $F,$F,$F,$F
  752.     Dc.w    $F,$F,$F,$F
  753.     Dc.w    $F,$F,$F,$E
  754.     Dc.w    $E,$E,$E,$E
  755.     Dc.w    $E,$E,$D,$D
  756.     Dc.w    $D,$D,$C,$C
  757.     Dc.w    $C,$C,$B,$B
  758.     Dc.w    $B,$B,$A,$A
  759.     Dc.w    $A,$A,9,9
  760.     Dc.w    9,9,8,8
  761.     Dc.w    8,8,7,7
  762.     Dc.w    7,7,6,6
  763.     Dc.w    6,6,5,5
  764.     Dc.w    5,5,4,4
  765.     Dc.w    4,4,3,3
  766.     Dc.w    3,3,2,2
  767.     Dc.w    2,2,2,2
  768.     Dc.w    2,1,1,1
  769.     Dc.w    1,1,1,1
  770.     Dc.w    1,1,1,2
  771.     Dc.w    2,2,2,2
  772.     Dc.w    2,2,3,3
  773.     Dc.w    3,3,4,4
  774.     Dc.w    4,4,5,5
  775.     Dc.w    5,5,6,6
  776.     Dc.w    6,6,7,7
  777.     Dc.w    7,7,8,8
  778.     Dc.w    8,8,9,9
  779.     Dc.w    9,9,$A,$A
  780.     Dc.w    $A,$A,$B,$B
  781.     Dc.w    $B,$B,$C,$C
  782.     Dc.w    $C,$C,$D,$D
  783.     Dc.w    $D,$D,$E,$E
  784.     Dc.w    $E,$E,$E,$E
  785.     Dc.w    $E,$F,$F,$F
  786.     Dc.w    $F,$F,$F,$F
  787.     Dc.w    $F,$F,$F,$F
  788.     Dc.w    $F,$E,$E,$E
  789.     Dc.w    $E,$E,$E,$E
  790.     Dc.w    $D,$D,$D,$D
  791.     Dc.w    $C,$C,$C,$C
  792.     Dc.w    $B,$B,$B,$B
  793.     Dc.w    $A,$A,$A,$A
  794.     Dc.w    9,9,9,9
  795.     Dc.w    8,8,8,8
  796.     Dc.w    7,7,7,7
  797.     Dc.w    6,6,6,6
  798.  
  799.  
  800.  
  801.  
  802.